﻿Imports BusinessEntities
Imports BusinessLogic
Imports Library

Public Class WebForm1
    Inherits System.Web.UI.Page


    Dim strUser As String = "SchattenTod"

    Private Sub ObtenerConvocatorias()
        Try
            Me.ddlConvocatoria.DataSource = (New ConvocatoriaBL).ObtenerConvocatoriaActivas()
            Me.ddlConvocatoria.DataValueField = "id"
            Me.ddlConvocatoria.DataTextField = "nombre"
            Me.ddlConvocatoria.DataBind()

            Me.ddlConvocatoria.Items.Insert(0, New ListItem("-- Seleccione --", "0"))
        Catch ex As Exception
            Throw
        End Try
    End Sub


    Private Sub LimpiarConvocatoria()
        Me.lblCodigoConvocatoria.Text = ""
        Me.lblFechaCreacionConvocatoria.Text = ""
        Me.lblRequerimientoConvocatoria.Text = ""
        Me.lblFechaFinConvocatoria.Text = ""
        Me.imgRequiereVisita.ImageUrl = "~\images\NoCheck.gif"
    End Sub

    Private Sub LimpiarEvaluacion()
        Me.txtFechaPropuesta.Text = String.Empty
        Me.txtPrecio.Text = ""
        Me.txtPropuesta.Text = ""
        Me.txtdetalleevaluacion.Text = ""
    End Sub


    Private Sub MostrarConvocatoria(ByVal intConvocatoria As Integer)
        Try
            Dim objBE As ConvocatoriaBE = (New ConvocatoriaBL).ObtenerConvocatoria(intConvocatoria)

            Me.lblCodigoConvocatoria.Text = objBE.Codigo
            Me.lblFechaCreacionConvocatoria.Text = objBE.FechaCreacion.ToString("dd/MM/yyyy")
            ViewState("FechaCreacion") = objBE.FechaCreacion
            ViewState("FechaFin") = objBE.FechaFin
            Me.lblRequerimientoConvocatoria.Text = objBE.Requerimiento
            Me.lblFechaFinConvocatoria.Text = objBE.FechaFin.ToString("dd/MM/yyyy")
            If objBE.Visita Then
                Me.imgRequiereVisita.ImageUrl = "~\images\Check.png"
                ViewState("Visita") = "SI"
            Else
                Me.imgRequiereVisita.ImageUrl = "~\images\NoCheck.gif"
                ViewState("Visita") = "NO"
            End If
        Catch ex As Exception
            Throw
        End Try
    End Sub


    Protected Sub ddlConvocatoria_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlConvocatoria.SelectedIndexChanged
        Try
            If Me.ddlConvocatoria.SelectedValue.Equals("0") Then
                Me.ddlProveedor.Items.Clear()
                Me.ddlProveedor.Items.Insert(0, New ListItem("-- Seleccione --", "0"))

                Me.LimpiarConvocatoria()
            Else
                Me.ddlProveedor.DataSource = (New ConvocatoriaBL).ObtenerPreSeleccionadoPorConvocatoria(Integer.Parse(Me.ddlConvocatoria.SelectedValue))
                Me.ddlProveedor.DataValueField = "id"
                Me.ddlProveedor.DataTextField = "nombre"
                Me.ddlProveedor.DataBind()

                Me.ddlProveedor.Items.Insert(0, New ListItem("-- Seleccione --", "0"))

                Me.MostrarConvocatoria(Integer.Parse(Me.ddlConvocatoria.SelectedValue))
            End If
        Catch ex As Exception
            LogAuditoria.LogInfo(strUser, "RegistrarPropuesta-ddlConvocatoria_SelectedIndexChanged", ex.Message)
        End Try
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Try
                Me.ObtenerConvocatorias()
                Me.ddlConvocatoria_SelectedIndexChanged(Nothing, Nothing)
                Me.LimpiarEvaluacion()
            Catch ex As Exception
                LogAuditoria.LogInfo(strUser, "RegistrarPropuesta-Load", ex.Message)
            End Try
        End If
    End Sub

    Protected Sub btnRegistrar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnRegistrar.Click
         Dim alertScript As String = "<script language='javascript'>alert('{0}')</script>"

        Try
            If Me.ValidarFormulario() Then
                Dim objBE As EvaluacionBE = Me.ObtenerEvaluacion
                If Me.RegistrarEvaluacion(objBE) Then
                    Me.ddlConvocatoria.SelectedValue = "0"
                    Me.ddlConvocatoria_SelectedIndexChanged(Nothing, Nothing)
                    Me.LimpiarEvaluacion()

                    alertScript = String.Format(alertScript, "se guardo la evaluacion con codigo " & objBE.Id.ToString)
                Else
                    alertScript = String.Format(alertScript, "no se guardo la evaluacion, intente de nuevo")
                End If
            End If
        Catch ex As Exception
            LogAuditoria.LogInfo(strUser, "RegistrarPropuesta-btnRegistrar_Click", ex.Message)
            alertScript = String.Format(alertScript, ex.Message)
        Finally
            Page.ClientScript.RegisterStartupScript(GetType(Page), "PopupScript", alertScript)
        End Try
    End Sub


    Private Function ValidarFormulario() As Boolean
        Try
            
            If Not IsDate(Me.txtFechaPropuesta.Text.Trim) Then
                Throw New Exception("Debe ingresar la fecha de la evaluacion valida")
            End If
            
            If String.IsNullOrEmpty(Me.txtdetalleevaluacion.Text.Trim) Then
                Throw New Exception("Debe ingresar el detalle de la evaluacion")
            End If
            If String.IsNullOrEmpty(Me.txtPropuesta.Text.Trim) Then
                Throw New Exception("Debe ingresar el resumen de la evaluacion")
            End If
            
            Return True
        Catch ex As Exception
            Throw
        End Try

    End Function

    Private Function ObtenerEvaluacion() As EvaluacionBE
        Try
            Dim objBE As New EvaluacionBE

            If Not String.IsNullOrEmpty(Me.txtFechaPropuesta.Text.Trim) Then
                objBE.Fecha = CDate(Me.txtFechaPropuesta.Text.Trim)
            End If
            objBE.Id = 0

            objBE.TipoEvaluacion = Me.txtPrecio.Text.Trim
            objBE.Detalle = Me.txtdetalleevaluacion.Text.Trim
            objBE.Resumen = Me.txtPropuesta.Text.Trim
            
            Return objBE
        Catch ex As Exception
            Throw
        End Try
    End Function

    Private Function RegistrarEvaluacion(ByVal objBE As EvaluacionBE) As Boolean
        Try
            Return (New EvaluacionBL).RegistrarEvaluacion(objBE)
        Catch ex As Exception
            Throw
        End Try
    End Function

End Class